'
'
' ##################
' ##### Font #####
' ##################
'
FUNCTION Font ()
STATIC label
$XuiFont = 30
'
GetDisplayGrid ( @label )
'
' create window with XuiFont grid
'
XuiCreateWindow (@grid, @"XuiFont", 100, 256, 256, 128, 0, "")
XuiSendStringMessage ( grid, @"SetCallback", grid, &XuiQueueCallbacks(), -1, -1, $XuiFont, -1)
XuiSendStringMessage ( grid, @"SetGridName", 0, 0, 0, 0, 0, @"Font")
XuiSendStringMessage ( grid, @"SetTextString", 0, 0, 0, 0, 1, @"XuiFont")
XuiSendStringMessage ( grid, @"DisplayWindow", 0, 0, 0, 0, 0, 0)
'
' convenience function message loop
'
DO
XgrProcessMessages (1)
DO WHILE XuiGetNextCallback (@grid, @message$, @v0, @v1, @v2, @v3, @kid, @r1$)
GOSUB Callback
LOOP
LOOP
RETURN
'
' callback
'
SUB Callback
win = kid >> 16
kid = kid AND 0xFF
SELECT CASE message$
CASE "CloseWindow" : QUIT (0)
CASE "Selection" : GOSUB Selection
CASE ELSE : DisplayCallback (grid, @message$, v0, v1, v2, v3, kid, @r1$)
END SELECT
END SUB
'
' Selection message
'
SUB Selection
v0$ = ""
v1$ = ""
v2$ = ""
v3$ = ""
IF (v0 < 0) THEN
v0$ = " : cancel"
ELSE
XgrGetFontInfo (v0, @font$, @size, @weight, @italic, @angle)
v0$ = " : font # typeface : \"" + font$ + "\""
v1$ = " 20 * size : " + RJUST$(STRING$(size),4)
v2$ = " weight : " + RJUST$(STRING$(weight),4)
v3$ = " italic : " + RJUST$(STRING$(italic),4)
END IF
'
text$ = "XuiFont\n"
text$ = text$ + " grid = " + HEX$ (grid, 8) + "\n"
text$ = text$ + " message = " + message$ + "\n"
text$ = text$ + " v0 = " + HEX$ (v0,8) + v0$ + "\n"
text$ = text$ + " v1 = " + HEX$ (v1,8) + v1$ + "\n"
text$ = text$ + " v2 = " + HEX$ (v2,8) + v2$ + "\n"
text$ = text$ + " v3 = " + HEX$ (v3,8) + v3$ + "\n"
text$ = text$ + " kid = " + HEX$ (kid,8) + "\n"
text$ = text$ + " r1$ = " + r1$
XuiSendStringMessage (label, @"SetTextString", 0, 0, 0, 0, 0, @text$) ' set message text
XuiSendStringMessage (label, @"Redraw", 0, 0, 0, 0, 0, 0) ' redraw label
END SUB
END FUNCTION